Offline defaulting service

ABSTRACT

The present disclosure involves systems, software, and computer implemented methods for providing default values for fields of data objects in an offline mode. One example method includes receiving, at a client device, a default group mapping that includes a default group identifier and a default value to be used as an initial value for a field. A field mapping can be received that includes a default group identifier and a field identifier. A request can be received while the client device is offline to create an instance of an object. A determination can be made that the field mapping includes a field identifier for a field of the object. A default value can be retrieved, from a local repository on the client device. A field value of the field in a created instance of the data object can be set to be the default value.

CLAIM OF PRIORITY

This application claims priority under 35 USC § 120 to U.S. patentapplication Ser. No. 15/816,153, filed on Nov. 17, 2017, entitled“OFFLINE DEFAULTING SERVICE”; the entire contents of which are herebyincorporated by reference.

TECHNICAL FIELD

The present disclosure relates to computer-implemented methods,software, and systems for providing default values for fields of dataobjects in an offline mode.

BACKGROUND

A software object can represent a concept in the real world. A softwareobject can model data attributes associated with a given concept as wellas actions that may be performed on an instance of the concept. Abusiness object (BO) can represent a concept in the business domain. Forexample, a sales order business object can represent a sales order. Aninstance of the sales order business object can be created and can storedata values associated with the instance. For example, a sales orderinstance may have particular values stored for a delivery date and anidentifier of a customer who placed the order. The sales order businessobject can enable actions to be called on the sales order instance, suchas creating or cancelling the given sales order.

SUMMARY

The present disclosure involves systems, software, and computerimplemented methods for providing default values for fields of dataobjects in an offline mode. One example method includes receiving, at aclient device, a default group mapping that includes a default groupidentifier and a default value to be used as an initial value for afield. A field mapping can be received that includes a default groupidentifier and a field identifier. A request can be received while theclient device is offline to create an instance of an object. Adetermination can be made that the field mapping includes a fieldidentifier for a field of the object. A default value can be retrieved,from a local repository on the client device. A field value of the fieldin a created instance of the data object can be set to be the defaultvalue.

While generally described as computer-implemented software embodied ontangible media that processes and transforms the respective data, someor all of the aspects may be computer-implemented methods or furtherincluded in respective systems or other devices for performing thisdescribed functionality. The details of these and other aspects andembodiments of the present disclosure are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example system for providingdefault values for fields of data objects in an offline mode.

FIG. 2 is an example table for mapping a business object field to adefaulting group.

FIG. 3 illustrates a mapping that maps default group identifiers torespective default values.

FIG. 4 illustrates code that represents an offline component model.

FIG. 5 is a flowchart of an example method for providing default valuesfor fields of data objects in an offline mode

FIG. 6 is a swim lane of a method for providing default values forfields of data objects in an offline mode.

DETAILED DESCRIPTION

Applications, including business applications, can support an offlinemode in which a user can use the application, e.g., on a mobile device,when the mobile device is offline (e.g., not connected to a network).The application can be designed so that features work the same orsimilarly in an offline mode as in an online mode. A feature that canwork the same in offline and online modes is a defaulting service. Adefaulting service can retrieve data that has been last entered orprovided for a data object (e.g., business object) field andautomatically prefill an input field for the data object field with apreviously entered value, such as when a new data object instance isbeing created. Prior solutions required online information to prefillinput fields when the application is executing in an offline manner,particularly where prior selections in the online mode were made but noprior selection has been made in the offline mode. Selections made inthe online mode were not shared with or provided to the application forapplication while in the offline mode. Therefore, new inputs made whileusing the offline mode required resubmission of the prior default valuesidentified in online sessions, which cause users to resubmit informationalready known by the online system.

As an example, a user can create a new business object that represents anew account. The user can use a user interface to set a country field ofthe account to a value of “US.” If the user creates another new account,the country field for the other new account can be automaticallyprefilled with the “US” value. As described below, data can besynchronized between a backend server and a mobile device so that thedefaulting service can be used regardless of whether the mobile deviceis online or offline, by allowing default values identified in theonline mode to be provided to the application for use in the offlinemode. Still further, changes to the default values identified while inthe offline mode can be provided to the backend system when a connectionis available and the online mode is reengaged. Accordingly, a consistentuser-interface experience can be achieved and default selections for theapplication and its data can be supported in all types of connectionmodes.

FIG. 1 is a block diagram illustrating an example system 100 forproviding default values for fields of data objects in an offline mode.Specifically, the illustrated system 100 includes or is communicablycoupled with a backend system 102, a client device 104, and a network106. Although shown separately, in some implementations, functionalityof two or more systems or servers may be provided by a single system orserver. In some implementations, the functionality of one illustratedsystem or server may be provided by multiple systems or servers.

A client application 108 on the client device 104 is a client version ofa server application 109 on the backend system 102. The clientapplication 108 can be configured to work offline (e.g., when the clientdevice 104 is not connected to the network 106). A server syncingservice 110 on the backend system 102 can send data to the client device104 so that the client application 108 can be used when the clientdevice 104 is offline. A client syncing service 112 on the client device104 can receive the data sent by the server syncing service 110.

The data sent by the server syncing service 110 can include BO instancedata of BO objects 113 stored on the backend system 102. The clientsyncing service 112 can store received BO instance data in a BO instancedata area 114 of memory 116. The data sent by the server syncing service110 can include BO metadata for the BO objects 113, which can be storedby the client syncing service 112 in a BO metadata area 118.

The backend system 102 can store data used by an online defaultingservice 120. The online defaulting service 120 can provide defaultvalues for use in new instances of BO objects. A default value for afield can be a value that was last saved for the field, or for a relatedfield. For example, if a user enters a value for the field or a relatedfield, the field can later be pre-populated when a BO instance thatincludes the field (or related field) is subsequently created.

For implementation of the online defaulting service 120, the backendsystem 102 can store default group mappings 122 and field defaultmappings 124. Each mapping in the default group mappings 122 includes arespective default group identifier and a corresponding default value tobe used as an initial value for one or more BO fields. A default groupis a set of BO fields that are linked to a same default value. Exampledefault group mappings are described below with respect to FIG. 3.

The field default mappings 124 map particular BO fields to defaultgroups. Each mapping in the field default mappings 124 includes arespective default group identifier and a corresponding BO fieldidentifier. Example field default mappings are described below withrespect to FIG. 2. By mapping the particular BO fields to defaultgroups, those fields can be connected to and consistent with any defaultvalues associated with the other BO fields within the default group.

The default group mappings 122 and the field default mappings 124 can besent by the server syncing service 110 so that an offline defaultingservice 126 can replicate the functionality of the online defaultingservice 120 when the client device 104 is offline. The default groupmappings 122 can be stored by the client syncing service 112 in thememory 116 as local default group mappings 128. In some implementations,the field default mappings 124 are stored in the BO metadata 118 aslocal field default mappings 130. For example, and as described in moredetail below with respect to FIG. 4, metadata 118 for a BO can be storedas an offline component model, for example, as a set of attribute-valuepairs. The offline component model for a particular BO, for a particularfield, can include a default group attribute with a value of aparticular default group identifier.

The offline defaulting service 126 can use the local default groupmappings 128 and the local field default mappings 130 when a new BOinstance is created on the client device 104 while the client device 104is offline. For example, the offline defaulting service 126 candetermine (or can be informed) that a type of a BO that is being createdhas a field for which an entry exists in the local field defaultmappings 130. In other words, the offline defaulting service 126 mayknow that an instance that is being created has a field that has acorresponding default value. The offline defaulting service 126 canidentify an entry in the local field default mappings 130 that includesa field identifier of a field of the BO instance being created. Theoffline defaulting service 126 can identify a corresponding defaultgroup identifier in the identified entry that is mapped to the fieldidentifier. The offline defaulting service 126 can find an entry in thelocal default group mappings 128 that includes the identified defaultgroup identifier, to locate a default value to use for the field.

The default value for the field can be presented in a user interfacecontrol of a user interface defined in user interface definitions 132,as an initial value for the field. The user can leave the initial valueunchanged, or can change the initial value to a new value. The value inthe user interface control (e.g., the initial value or the new value)can be saved as a field value for the BO instance when the BO instanceis saved. If the user has changed the initial value to a new value, thenew value can be stored, in the local default group mappings 128, as anew default value for the default group associated with the field. If,for example, a second BO instance of the BO type is created, the newvalue can be used as a default value for the field in the secondinstance. As another example, if a third BO instance is created, of a BOtype that has another field mapped to the same default group identifier,the new value can also be used as a default value for the other field inthe third BO instance.

The client syncing service 112 can determine when the client device 104comes back online after being offline. The client syncing service 112can send data that may have been changed on the client device 104 whilethe client device 104 was offline, to the server syncing service 110,for storage in the backend system 102. For example, the client syncingservice 112 can send changed BO instance data 114 and changed defaultvalues in the local default group mappings 128. If a changed defaultvalue is sent from the client syncing service 112 to the server syncingservice 110, the changed default value can be stored in a correspondingentry in the default group mappings 122. The changed default value canbe retrieved from the default group mappings 112 and used as a defaultvalue for an associated field of a BO, if the user creates an instanceof the BO while the client device 104 is online. Accordingly, the userdoes not have to resubmit information, while the client device 104 isonline, that was previously entered while the client device 104 wasoffline.

As used in the present disclosure, the term “computer” is intended toencompass any suitable processing device. For example, although FIG. 1illustrates a single backend system 102 and a single client device 104,the system 100 can be implemented using a single, stand-alone computingdevice, two or more backend systems 102 or two or more clients 104.Indeed, the backend system 102 and the client device 104 may be anycomputer or processing device such as, for example, a blade server,general-purpose personal computer (PC), Mac®, workstation, UNIX-basedworkstation, or any other suitable device. In other words, the presentdisclosure contemplates computers other than general purpose computers,as well as computers without conventional operating systems. Further,the backend system 102 and the client device 104 may be adapted toexecute any operating system, including Linux, UNIX, Windows, Mac OS®,Java™ Android™, iOS or any other suitable operating system. According toone implementation, the backend system 102 may also include or becommunicably coupled with an e-mail server, a Web server, a cachingserver, a streaming data server, and/or other suitable server.

Interfaces 140 and 142 are used by the backend system 102 and the clientdevice 104, respectively, for communicating with other systems in adistributed environment—including within the system 100—connected to thenetwork 106. Generally, the interfaces 140 and 142 each comprise logicencoded in software and/or hardware in a suitable combination andoperable to communicate with the network 106. More specifically, theinterfaces 140 and 142 may each comprise software supporting one or morecommunication protocols associated with communications such that thenetwork 106 or interface's hardware is operable to communicate physicalsignals within and outside of the illustrated system 100.

The backend system 102 includes one or more processors 144. Eachprocessor 144 may be a central processing unit (CPU), a blade, anapplication specific integrated circuit (ASIC), a field-programmablegate array (FPGA), or another suitable component. Generally, eachprocessor 144 executes instructions and manipulates data to perform theoperations of the backend system 102. Specifically, each processor 144executes the functionality required to receive and respond to requestsfrom the client device 104, for example.

Regardless of the particular implementation, “software” may includecomputer-readable instructions, firmware, wired and/or programmedhardware, or any combination thereof on a tangible medium (transitory ornon-transitory, as appropriate) operable when executed to perform atleast the processes and operations described herein. Indeed, eachsoftware component may be fully or partially written or described in anyappropriate computer language including C, C++, Java™, JavaScript®,Visual Basic, assembler, Perl®, any suitable version of 4GL, as well asothers. While portions of the software illustrated in FIG. 1 are shownas individual modules that implement the various features andfunctionality through various objects, methods, or other processes, thesoftware may instead include a number of sub-modules, third-partyservices, components, libraries, and such, as appropriate. Conversely,the features and functionality of various components can be combinedinto single components as appropriate.

The backend system 102 includes memory 146. In some implementations, thebackend system 102 includes multiple memories. The memory 146 mayinclude any type of memory or database module and may take the form ofvolatile and/or non-volatile memory including, without limitation,magnetic media, optical media, random access memory (RAM), read-onlymemory (ROM), removable media, or any other suitable local or remotememory component. The memory 146 may store various objects or data,including caches, classes, frameworks, applications, backup data,business objects, jobs, web pages, web page templates, database tables,database queries, repositories storing business and/or dynamicinformation, and any other appropriate information including anyparameters, variables, algorithms, instructions, rules, constraints, orreferences thereto associated with the purposes of the backend system102.

The client device 104 may generally be any computing device operable toconnect to or communicate with the backend system 102 via the network106 using a wireline or wireless connection. In general, the clientdevice 104 comprises an electronic computer device operable to receive,transmit, process, and store any appropriate data associated with thesystem 100 of FIG. 1. The client device 104 can include one or moreclient applications, including the client application 108. A clientapplication is any type of application that allows the client device 104to request and view content on the client device 104. In someimplementations, a client application can use parameters, metadata, andother information received at launch to access a particular set of datafrom the backend system 102. In some instances, a client application maybe an agent or client-side version of the one or more enterpriseapplications running on an enterprise server (not shown).

The client device 104 further includes one or more processors 148. Eachprocessor 148 included in the client device 104 may be a centralprocessing unit (CPU), an application specific integrated circuit(ASIC), a field-programmable gate array (FPGA), or another suitablecomponent. Generally, each processor 148 included in the client device104 executes instructions and manipulates data to perform the operationsof the client device 104. Specifically, each processor 148 included inthe client device 104 executes the functionality required to sendrequests to the backend system 102 and to receive and process responsesfrom the backend system 102.

The client device 104 is generally intended to encompass any clientcomputing device such as a laptop/notebook computer, wireless data port,smart phone, personal data assistant (PDA), tablet computing device, oneor more processors within these devices, or any other suitableprocessing device. For example, the client device 104 may comprise acomputer that includes an input device, such as a keypad, touch screen,or other device that can accept user information, and an output devicethat conveys information associated with the operation of the server102, or the client device 104 itself, including digital data, visualinformation, or a graphical user interface (GUI) 150.

The GUI 150 of the client device 104 interfaces with at least a portionof the system 100 for any suitable purpose, including generating avisual representation of the client application 108. In particular, theGUI 150 may be used to view and navigate various Web pages. Generally,the GUI 150 provides the user with an efficient and user-friendlypresentation of business data provided by or communicated within thesystem. The GUI 150 may comprise a plurality of customizable frames orviews having interactive fields, pull-down lists, and buttons operatedby the user. The GUI 150 contemplates any suitable graphical userinterface, such as a combination of a generic web browser, intelligentengine, and command line interface (CLI) that processes information andefficiently presents the results to the user visually.

The memory 116 included in the client device 104 may include any memoryor database module and may take the form of volatile or non-volatilememory including, without limitation, magnetic media, optical media,random access memory (RAM), read-only memory (ROM), removable media, orany other suitable local or remote memory component. The memory 116 maystore various objects or data, including user selections, caches,classes, frameworks, applications, backup data, business objects, jobs,web pages, web page templates, database tables, repositories storingbusiness and/or dynamic information, and any other appropriateinformation including any parameters, variables, algorithms,instructions, rules, constraints, or references thereto associated withthe purposes of the client device 104.

There may be any number of client devices 104 associated with, orexternal to, the system 100. For example, while the illustrated system100 includes one client device 104, alternative implementations of thesystem 100 may include multiple client devices 104 communicably coupledto the backend system 102 and/or the network 106, or any other numbersuitable to the purposes of the system 100. Additionally, there may alsobe one or more additional client devices 104 external to the illustratedportion of system 100 that are capable of interacting with the system100 via the network 106. Further, the term “client”, “client device” and“user” may be used interchangeably as appropriate without departing fromthe scope of this disclosure. Moreover, while the client device 104 isdescribed in terms of being used by a single user, this disclosurecontemplates that many users may use one computer, or that one user mayuse multiple computers.

FIG. 2 is an example table 200 for mapping a BO field to a defaultinggroup. The table 200 is an example of field default mappings. The table200 includes a BO_NAME column 202, a BO_NODE_NAME column 204, aBO_NODE_FIELD column 206, and a PARAM_ID column 208. The BO_NAME column202 includes names (or another type of identifier) of BOs that include afield for which a default value has been assigned. For example, records210, 212, and 214 include BO_NAME values of “ADDRP_ADDRESS” 216,“BUSINESS_PARTNER_TMPL” 218, and “LEAN_LEAD” 220, respectively.

The BO_NODE_NAME column 204 includes names (or another type ofidentifier) of respective nodes of BOs that include a field for which adefault value has been assigned. For example, the records 210, 212, and214 include node names of “COMMUNICATION_PREFERENCE” 222, “COMMON” 224,and “ROOT” 226, respectively. As indicated in respective cells, the nodenamed “COMMUNICATION_PREFERENCE” 222 includes a field 228 named“CORRESPONDENCE_LANGUAGE_CODE”, the node named “COMMON” 224 includes afield 230 named “NON_VERBAL_COMMUNICATION_LANG”, and the node named“ROOT” 226 includes a field 232 named“ADDRESS_ACCOUNT_CORE_LANGUAGE_CODE”.

Each of the fields 228, 230, and 232 are associated with a default valueidentified by a default group identifier of“AP_CORRESPONDENCE_LANG_CODE” (e.g., the records 210, 212, and 214respectively include an “AP_CORRESPONDENCE_LANG_CODE” default groupidentifier 234, 236, or 238 in the PARAM_ID column 208). When arespective BO instance named “ADDRP_ADDRESS”, “BUSINESS_PARTNER_IMPL”,or “LEAN_LEAD” is created, a default value associated with the“AP_CORRESPONDENCE_LANG_CODE” default group identifier can be providedfor the field 228, 230, or 232, respectively. A default value for the“AP_CORRESPONDENCE_LANG_CODE” default group identifier can be retrievedfrom a default group that maps a default group identifier to aparticular default value.

FIG. 3 illustrates a mapping 300 that maps default group identifiers torespective default values. The mapping 300 is an example of a defaultgroup mapping. The mapping 300 can be a table or can be a portion of atable. For example, the mapping 300 can be included in a table thatstores personalization data for users. As another example, the mapping300 can be included in an offline database. For example, the mapping 300can be included in a default values node that is part of an offline usersettings BO that is stored in the offline database.

The mapping 300 includes a record 302 that has a value of“AP_CORRESPONDENCE_LANG_CODE” for a “DefaultingGroup” column 306. The“DefaultingGroup” column 306 can store default group identifiers. Thename of the column 306 may be the same or a different value when themapping 300 is stored an online database or an offline database. Therecord 302 includes a value 308 of “US” for a “value” column 310,indicating that a default value of “US” is to be used for BO fields(e.g., the fields 228, 230, and 232) that are associated with adefaulting group identifier of “AP_CORRESPONDENCE_LANG_CODE.”

FIG. 4 illustrates code 400 that represents an offline component model.The code 400 includes metadata for a modeled offline object. The code400 can model metadata for BOs of type BUSINESS_PARTNER_TMPL (e.g.,representing templates for business partner objects). The code 400 canbe a fragment of a model for the BUSINESS_PARTNER_TMPL BO for a“NON_VERBAL_COMMUNICATION_LANG” field (e.g., the field 230 of FIG. 2).An identifier attribute 402, a name attribute 404, and a data typeattribute 406 specify an identifier value (e.g., “xyz123”) thatidentifies the modeled field, a name value (e.g.,“PersonNonVerbalCommunicationLanguageCode”) for the modeled field, and adata type (e.g., string) for the modeled field, respectively.

The code 400 includes a “defaultGroup” attribute 408 that specifies adefault group identifier 410 of “AP_CORRESPONDENCE_LANG_CODE”. Thedefault group identifier 410 can be used, e.g., when an instance of aBUSINESS_PARTNER_TMPL BO is created in an offline mode, to retrieve adefault, initial value for the NON_VERBAL_COMMUNICATION_LANG field 230of the BUSINESS_PARTNER_TMPL instance. As another example, the defaultgroup identifier 410 can be used to retrieve a value to be displayed ina user interface on an offline device (e.g., for a pre-populated userinterface control that displays a default value for the field, in a userinterface used to create an instance of BUSINESS_PARTNER_TMPL BO). Thedefault value can be retrieved from a data structure stored on theoffline device, using the default group identifier 410. For example, adata structure such as the mapping 300 (or a structure that is logicallyequivalent to the mapping 300) can be queried, using the default groupidentifier 410, to retrieve a default value (e.g., such as the “US”value 306 or another value).

FIG. 5 is a flowchart of an example method 500 for providing defaultvalues for fields of data objects in an offline mode. It will beunderstood that method 500 and related methods may be performed, forexample, by any suitable system, environment, software, and hardware, ora combination of systems, environments, software, and hardware, asappropriate. For example, one or more of a client, a server, or othercomputing device can be used to execute method 500 and related methodsand obtain any data from the memory of a client, the server, or theother computing device. In some implementations, the method 500 andrelated methods are executed by one or more components of the system 100described above with respect to FIG. 1. For example, the method 500 andrelated methods can be executed by offline defaulting service 126 and/orthe client syncing service 112 of FIG. 1.

At 502, one or more default group mappings are received, at a clientdevice and from a server. Each default group mapping includes arespective default group identifier and a corresponding default value tobe used as an initial value for at least one data object field. A dataobject can be a business object. The default group mappings can be asshown in (or similar to the mappings included in) the mappings 300 ofFIG. 3.

At 504, one or more field default mappings are received, at the clientdevice and from the server. Each field default mapping includes arespective default group identifier and a corresponding data objectfield identifier. Multiple data object fields, of the same or differentdata objects, can be mapped to a same default group identifier. Thefield default mappings can be as shown in (or similar to the mappingsincluded in) the table 200 of FIG. 2. The default group mappings and thefield default mappings may be received during a synchronization event,such as a full or initial sync with the client device and itsapplications, or during a delta sync action after an initialsynchronization has occurred. In some instances, the informationincluded in 502 and 504 may be received in response to a change at theserver or based on changes made during an online session associated withthe application executing at the client device, including by a differentapplication instance (e.g., a desktop or laptop application instance)operated by or associated with the same user of the client device, wherethe application instance on the client device represents a mobileapplication instance.

At 506, the default group mappings and the field default mappings arestored in a local repository of the client device. The local repositoryis accessible to the client device when the client device is offline.

At 508, a request is received, while the client device is offline, tocreate an instance of a first data object associated with theapplication instance executing at the client device in the offline mode.For example, a user input may be received that is identified as arequest to create the instance of the first data object. The clientdevice being offline may mean that a connection is unavailable or that aconnection speed or quality is below an online session threshold.

At 510, the instance of the first data object is created in response tothe received request in the offline mode of the application. Creatingthe instance of the first data object can include, at 512, determiningthat the stored field default mappings include a data object fieldidentifier for a field of the first data object instantiated or to beinstantiated. The stored field default mappings can include fieldidentifiers for multiple fields of the first data object.

Creating the instance of the first data object can include, at 514,retrieving, from the local repository, a default value for the fieldfrom the stored default group mappings. Retrieving the default value forthe field from the stored default group mappings can include:identifying a first field default mapping, in the stored field defaultmappings, that includes the data object field identifier; identifying,in the first field default mapping, a first default group identifierthat corresponds to the data object field identifier; identifying afirst default group mapping, in the stored default group mappings, thatincludes the first default group identifier; and identifying, in thesecond entry, the default value. The default value can be presented in auser interface control of a user interface presented on the clientdevice. The user can change the default value presented in the userinterface control or can leave the presented default value unchanged(e.g., the user can accept the presented default value).

Creating the instance of the first data object can include, at 516,setting a field value of the field in the instance of the data object tobe the default value. If the user has changed the presented value to anew value, the field value can be set to be the new value. After thefield value has been set, a request can be received (e.g., from the userinterface) to save the instance of the data object. Data for theinstance of the data object, including the field value, can be stored inthe local repository. If the user has changed the presented defaultvalue to a new value, the new value can be saved, in the default groupmappings, as a new default value, in association with the default groupidentifier.

FIG. 6 is a swim lane of a method 600 for providing default values forfields of data objects in an offline mode. At 602, a backend syncingservice 604 of a server sends data to a client syncing service 606 on aclient device as part of a data synchronization process that enables theclient device to use data sent by the server, when the client device isoffline.

At 608, the client syncing service stores the received data in anoffline repository 610 on the client device. The received data includesone or more default values for BO fields.

At 612, a client-side application 614 (e.g., a client version of aserver application) creates an object instance of a particular type ofBO, e.g., in response to receiving a user input on a user interface. Theclient-side application 614 detects that the client device is offline.

At 616, the client-side application 614 sends a request for defaultvalues to an offline defaulting service 618.

At 620, the offline defaulting service 618 retrieves requested defaultvalues from the offline repository 610.

At 622, the offline defaulting service 618 provides the retrieveddefault values to the client-side application 614.

At 624, the client-side application 614 presents the provided defaultvalues in a user interface, e.g., to populate user interface controlswith default values for corresponding BO fields.

At 626, the client-side application 614 detects a change in a userinterface control that initially displayed a provided default value fora particular field. For example, the user may have changed an initiallydisplayed value to a changed field value.

At 628, the client-side application 614 provides the changed field valueas a new default value for the particular field to the offlinedefaulting service 618.

At 630, the offline defaulting service 618 stores the new default valuein the offline repository 610.

At 632, the client syncing service 606 determines that the client deviceis online.

At 634, the client syncing service 606 retrieves data, including the newdefault value, from the offline repository 610.

At 636, the client syncing service 606 sends data retrieved from theoffline repository 610, over a network, to the backend syncing service604. The data sent to the backend syncing service 604 includes the newdefault value. The backend syncing service can communicate with a serverdefaulting service (not shown), to request that the new default value bestored for the particular field.

The preceding figures and accompanying description illustrate exampleprocesses and computer-implementable techniques. But system 100 (or itssoftware or other components) contemplates using, implementing, orexecuting any suitable technique for performing these and other tasks.It will be understood that these processes are for illustration purposesonly and that the described or similar techniques may be performed atany appropriate time, including concurrently, individually, or incombination. In addition, many of the operations in these processes maytake place simultaneously, concurrently, and/or in different orders thanas shown. Moreover, system 100 may use processes with additionaloperations, fewer operations, and/or different operations, so long asthe methods remain appropriate.

In other words, although this disclosure has been described in terms ofcertain embodiments and generally associated methods, alterations andpermutations of these embodiments and methods will be apparent to thoseskilled in the art. Accordingly, the above description of exampleembodiments does not define or constrain this disclosure. Other changes,substitutions, and alterations are also possible without departing fromthe spirit and scope of this disclosure.

What is claimed is:
 1. A method comprising: receiving, at a clientdevice and from a server, default value information that identifies atleast one data field and a corresponding default value to be used as aninitial value for each of the at least one data object field; storingthe default value information in a local repository of the clientdevice; while the client device is offline: receiving a request tocreate an instance of a first data object; and creating the instance ofthe first data object in response to the received request, whereincreating the instance of the first data object includes: determiningthat the stored default value information includes a data object fieldidentifier for a field of the first data object; and setting a fieldvalue of the field in the instance of the first data object to be adefault value for the field, wherein the default value is retrieved fromthe local repository and was identified and received from the serverwhile the client device was online.
 2. The method of claim 1, whereinthe client device due to a connection to the server being unavailable,or that a connection speed or quality of a connection to the server isbelow an online session threshold.
 3. The method of claim 2, furthercomprising: receiving a request to save the instance of the first dataobject; and storing data for the instance of the first data object inthe local repository, wherein storing data for the instance of the firstdata object comprises storing the field value for the field.
 4. Themethod of claim 3, further comprising presenting the default value in auser interface control of a user interface presented on the clientdevice, and wherein the request to save the instance of the first dataobject is received from the user interface.
 5. The method of claim 4,further comprising: receiving an input, for the user interface control,identifying a change to the default value to a changed value; settingthe field value to be the changed value; and wherein storing data forthe first data object instance comprises storing the changed value asthe field value.
 6. The method of claim 5, further comprising: storingthe changed value, as an updated default value, in the stored defaultvalue information.
 7. The method of claim 6, further comprising: inresponse to determining that the client device is not offline: sendingthe data for the instance of the first data object, including thechanged value, to the server; retrieving the stored default valueinformation from the local repository; and sending, to the server, theretrieved default value information, wherein the updated default valuein the retrieved default value information was identified while theclient device was offline, and wherein determining that the clientdevice is not offline indicates that the client device is connected tothe server.
 8. A system comprising: one or more computers; and acomputer-readable medium coupled to the one or more computers havinginstructions stored thereon which, when executed by the one or morecomputers, cause the one or more computers to perform operationscomprising: receiving, at a client device and from a server, defaultvalue information that identifies at least one data field and acorresponding default value to be used as an initial value for each ofthe at least one data object field; storing the default valueinformation in a local repository of the client device; while the clientdevice is offline: receiving a request to create an instance of a firstdata object; and creating the instance of the first data object inresponse to the received request, wherein creating the instance of thefirst data object includes: determining that the stored default valueinformation includes a data object field identifier for a field of thefirst data object; and setting a field value of the field in theinstance of the first data object to be a default value for the field,wherein the default value is retrieved from the local repository and wasidentified and received from the server while the client device wasonline.
 9. The system of claim 8, wherein the client device is offlinedue to a connection to the server being unavailable, or that aconnection speed or quality of a connection to the server is below anonline session threshold.
 10. The system of claim 9, wherein theoperations further comprise: receiving a request to save the instance ofthe first data object; and storing data for the instance of the firstdata object in the local repository, wherein storing data for theinstance of the first data object comprises storing the field value forthe field.
 11. The system of claim 10, wherein the operations furthercomprise presenting the default value in a user interface control of auser interface presented on the client device, and wherein the requestto save the instance of the first data object is received from the userinterface.
 12. The system of claim 11, wherein the operations furthercomprise: receiving an input, for the user interface control,identifying a change to the default value to a changed value; settingthe field value to be the changed value; and wherein storing data forthe first data object instance comprises storing the changed value asthe field value.
 13. The system of claim 12, wherein the operationsfurther comprise storing the changed value, as an updated default value,in the stored default value information.
 14. A computer program productencoded on a non-transitory storage medium, the computer program productcomprising non-transitory, computer readable instructions for causingone or more processors to perform operations comprising: receiving, at aclient device and from a server, default value information thatidentifies at least one data field and a corresponding default value tobe used as an initial value for each of the at least one data objectfield; storing the default value information in a local repository ofthe client device; while the client device is offline: receiving arequest to create an instance of a first data object; and creating theinstance of the first data object in response to the received request,wherein creating the instance of the first data object includes:determining that the stored default value information includes a dataobject field identifier for a field of the first data object; andsetting a field value of the field in the instance of the first dataobject to be a default value for the field, wherein the default value isretrieved from the local repository and was identified and received fromthe server while the client device was online.
 15. The computer programproduct of claim 14, wherein the client device due to a connection tothe server being unavailable, or that a connection speed or quality of aconnection to the server is below an online session threshold.
 16. Thecomputer program product of claim 15, wherein the operations furthercomprise: receiving a request to save the instance of the first dataobject; and storing data for the instance of the first data object inthe local repository, wherein storing data for the instance of the firstdata object comprises storing the field value for the field.
 17. Thecomputer program product of claim 16, wherein the operations furthercomprise presenting the default value in a user interface control of auser interface presented on the client device, and wherein the requestto save the instance of the first data object is received from the userinterface.
 18. The computer program product of claim 17, wherein theoperations further comprise: receiving an input, for the user interfacecontrol, identifying a change to the default value to a changed value;setting the field value to be the changed value; and wherein storingdata for the first data object instance comprises storing the changedvalue as the field value.